/*
 * Copyright 2016 Dmitry Spikhalskiy. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package scheduler.hashed_wheel_timer;

class MathUtil {
    /**
     *
     * @param p to delete
     * @param q should be positive
     * @return division result with rounding
     */
    protected static long divWithRound(long p, long q) {
        long div = p / q;
        long floor;
        long ceil;
        if (p >= 0) {
            floor = q * div;
            ceil = floor + q;
            return (ceil - p >= p - floor) ? div : div + 1;
        } else {
            ceil = q * div;
            floor = ceil - q;
            return (ceil - p <= p - floor) ? div : div - 1;

        }

    }
}
